#include "main.h"

// 学生功能函数
// 学生登录
void Student_Func(list_str *list)
{
    // 登录
    int user_index = 0;
    if (!Student_log_in(list, &user_index))
    {
        printf("登录失败\n");
        exit(-1);
    }

    printf("恭喜你 登录成功\n");

    int op = 0; // 菜单选型

    while (1)
    {
        // 写一个菜单
        printf("1、查成绩\n");
        printf("2、乘法表\n");
        printf("3、猜数字\n");
        printf("4、计算器\n");

        scanf("%d", &op);

        switch (op)
        {
        case 1:
            /* 1、查成绩 */
            list_Student_find(list , list->date[user_index]);
            break;
        case 2:
            /* 2、乘法表 */
            break;
        case 3:
            /* 3、猜数字 */
            break;
        case 4:
            /* 4、计算器 */
            break;
        default:
            break;
        }
    }

    // 销毁顺序表
}

// 老师登录
void Teacher_Func(list_str *list)
{
    // 登录

    if (!Teacher_log_in(list))
    {
        printf("登录失败\n");
        exit(-1);
    }

    printf("恭喜你 登录成功\n");

    int op = 0; // 菜单选型

    while (1)
    {
        // 写一个菜单
        printf("1、增加学生\n");
        printf("2、删除学生\n");
        printf("3、成绩排序\n");
        printf("4、修改学生\n");

        scanf("%d", &op);

        switch (op)
        {
        case 1:
            /* 1、增加学生 */
            // 1. 写一个函数 从 终端获取学生信息
            // 2. 插入
            break;
        case 2:
            /* 2、删除学生 */
            list_del(list);
            break;
        case 3:
            /* 3、成绩排序 */
            break;
        case 4:
            /* 4、修改学生 */
            break;
        default:
            break;
        }
    }

    // 销毁顺序表
}

int main(int argc, char const *argv[])
{
    // 1 数据初始化 从文件中读取数据到表

    // 1.1 创建表
    list_str *list;

    list_init(&list);

    // 1.2 从文件中读取数据到表
    file_update_list(list);

    // 2 选择 老师 或 学生登录
    int op = 0;
    printf("1、学生登录 2、老师登录\n");
    scanf("%d", &op);

    switch (op)
    {
    case 1: // 学生登录
        Student_Func(list);
        break;
    case 2: // 老师登录
        Teacher_Func(list);
        break;
    default:
        break;
    }

    return 0;
}
